pandas str.containsについて 您所在的位置:网站首页 pandas str contains pandas str.containsについて

pandas str.containsについて

2023-03-27 21:24| 来源: 网络整理| 查看: 265

この記事の目的

pandasのDataFrameの検索方法について整理

pandasとは?

データ解析を容易にするためのライブラリ 私の場合、csvからデータを読みこみ、 pandasを使用してDataFrameにしていじったりします

DataFrameとは?

pandasでデータを扱う際の型になります DataFrameとSeriesがあります

Series(シリーズ) データが1列の場合の型です

DataFrame(データフレーム) データが複数列の場合の型です DataFrameから1列を抽出した場合、自動でSeriesとなります

DataFrameでの検索(str.contains())

今回はDataFrameでの検索方法の中で、str.contains()を使用した方法を整理しました str.containsは特定の文字を含む検索が可能です

次のようなDataFrameを例とします

A B C D 0 NaN B0 C0 D0 1 B1 C1 D1 2 A1 B2 C2 D2 3 A3 B3 C3 D3 A B C D F 3 A1 B1 C4 D4 F2 5 A5 B2 C5 D5 F3 6 A0 B4 C6 D6 F6 7 A7 B6 C7 D7 F7

コード

import pandas as pd import numpy as np df1 = pd.DataFrame({'A': [np.NaN, '', 'A1', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}) df2 = pd.DataFrame({'A': ['A1', 'A5', 'A0', 'A7'], 'B': ['B1', 'B2', 'B4', 'B6'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', 'D6', 'D7'], 'F': ['F2', 'F3', 'F6', 'F7']}, index=[3, 5, 6, 7]) 引数ごとの動作例 regex 正規表現の指定

コード

# regex:True 正規表現を使用(デフォルト) result = df2[df2['A'].str.contains('A[1|0]')] # regex:False 正規表現を不使用 result = df2[df2['A'].str.contains('A[1|0]',regex = False)]

結果

# regex:True A B C D F 3 A1 B1 C4 D4 F2 6 A0 B4 C6 D6 F6 # regex:False Empty DataFrame Columns: [A, B, C, D, F] Index: [] na NaNの処理指定

コード

# na:False NaNがある行をFalseとして扱います result = df1[df1['A'].str.contains('1',na = False)] # na:True NaNがある行をTrueとして扱います result = df1[df1['A'].str.contains('1',na = True)] print(result) # NaNがデータに存在する状態で、naを使用しないとエラーとなります try: result = df1[df1['A'].str.contains('1')] except Exception as e: print(e)

結果

# na:False A B C D 2 A1 B2 C2 D2 # na:True A B C D 0 NaN B0 C0 D0 2 A1 B2 C2 D2 # na:なし Cannot mask with non-boolean array containing NA / NaN values case 大文字小文字の区別

コード

# case:Ture 大文字小文字を区別(デフォルト) result = df2[df2['A'].str.contains('a[1|0]')] # case:False 大文字小文字を区別しない result = df2[df2['A'].str.contains('a[1|0]',case = False)]

結果

# case:Ture Empty DataFrame Columns: [A, B, C, D, F] Index: [] # case:False A B C D F 3 A1 B1 C4 D4 F2 6 A0 B4 C6 D6 F6 終わり

今回はstr.containsについて、 文字だけだとイメージがつかないこともありまとめてみました



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有